Enums ={}

--[[
useage:
make_enum(name,table)

sample:
print(Enum.Profession.warrior)
===>1
print(Enum.Profession:toString(Enum.Profession.warrior))
===>"warrior"
]]

local Enum = class("Enum")

function Enum:ctor(t)
    for k,v in pairs(t) do
        self[k] = v
    end
end

function Enum:toString(v)
    for key,value in pairs(self) do
        if type(v)=="number" and v==value then
            return tostring(key)
        end
    end
    return tostring(v)
end

local make_enum = function(name,enums)
    Enums[name] = Enum.new(enums)
end

make_enum("Sex",{
    male = 1,       --男
    female = 2,     --女
})

make_enum("SexFileStr",{
    "male",       --男
    "female",     --女
})

make_enum("Profession",{
    warrior=1,  --战士
    mage=2,     --法师
    hunter=3,   --猎人
    rouge=4,    --盗贼
    preist=5,   --牧师
    --paladin=6,  --骑士
    --warlock=7,  --术士
    --druid=8,    --德鲁依
    --shaman=9,   --萨满
})

--对应的npc 类型
make_enum("NpcTypeName",{
    "npctype_Normal",  --普通
    "npctype_Special",  --精英
    "npctype_Boss",  --boss
    "npctype_Partner",  --佣兵
})

--item table showType
-- 1：消耗品   7：技能点
-- 2：材料      8：经验
-- 3：礼包      9：天赋点
-- 4：采集品   10：配方
-- 5：坐骑      11：声望
-- 6：货币      12：体力
-- 13：珠宝
-- 大部分是直接从配置表读出来的
make_enum("ItemShowType",{
    consumables     = 1,  --消耗品
    making          = 2,  --材料
    gift            = 3,  --礼包
    collect         = 4,  --采集
    mount           = 5,  --坐骑
    daibi           = 6,  --代币
    skillPoint      = 7,  --技能点
    exp             = 8,  --经验
    talentPoint     = 9,  --天赋点
    paper           = 10,  --配方
    fame            = 11,  --声望
    enegy           = 12,  --体力
    jewel           = 13,  --珠宝
    skillBook       = 14, --技能书
    partner         = 15, --随从
    fashion         = 16, --幻化
    crystal         = 17, --水晶
})
-- 获得ShowType描述 L("itemTypeDes_" .. showType)

make_enum("buildingType", {
    normal      = 0,  --正常
    base        = 1,  --基地
    tower       = 2,  --防御塔
    mine1       = 3,  --大矿
    mine2       = 4,  --小矿
    blood       = 5,  --血包
    spring      = 6,  --泉水
})


--道具类型
make_enum("ItemBagType", {
    -- 将被删除
    all         = 0,    --所有
    other       = 1000,   --其他
    making      = 1001,   --材料

    item        = 1,    --道具
    equip       = 2,    --装备
    mask        = 3,    --面具
    mount       = 4,    --坐骑
    fashion     = 5,    --时装
    jewel       = 8,    --宝石
    mercenary   = 11,   --宠物
    mapBuff     = 21,   --地图buff
    mountSoul   = 80,   --坐骑灵魂石
    jewelchip   = 90,   --宝石碎片
    fame        = 100,  --声望
    daibi       = 101,  --代币，货币集合
    tool        = 102,  --工具
    partner     = 103,  --伙伴
    partnerEquip =	130,	--随从装备
	partnerSkill = 131,	--随从技能
    partnerSoul = 133, --随从灵魂石
})

--tips类型
Enums.TipsType = {
    equip     = 1,    --装备
    mount     = 2,    --坐骑
    daibi     = 4,    --代币
    task      = 5,    --任务
    tool      = 6,    --工具
    item      = 7,    --道具
    mercenary = 9,    --宠物
    buff      = 10,   --buff(烤肉)
    achieve   = 11,   --成就
    jewel     = 12,   --宝石
    classSkill     = 13,   --技能
    skill     = 14,   --佣兵技能
    fame      = 15,   --声望
    crystal   = 16,   --水晶
    mapBuff   = 17,   --mapbuff
    mountSoul = 80,   --坐骑灵魂石
    fashion   = 81,   --时装
    partner   = 82,   --随从
    partnerEquip = 83, --
    partnerSkill = 84,
    captainRoom = 90, --船长室
    duel        = 91, --决斗信息
    partnerSoul = 133, --随从灵魂石

    contents = 999,     -- 只有content
    desc      = 1000,   -- title+content
}

-- 道具类型
-- 1 采集材料
-- 2 常规道具
-- 3 生活技能产出
-- 4 配方
-- 5 契约
-- 6 可使用的道具
-- 7 强化道具
-- 8 宝石碎片
-- 24 坐骑升星材料
-- 25 坐骑缰绳
-- 26 坐骑灵魂石
-- 28 随从经验药水
-- 29 水晶
-- 30 野外boss门票
-- 35 属性条卷轴   
-- 72 船长室收藏品
make_enum("ItemType", {
    normal        = 2,  --普通
    paper         = 4,  --配方
    partnerSummon = 5,  --随从契约
    rune          = 8,  --符文
    mountStar     = 24, --坐骑升星材料
    mountSummon   = 25, --坐骑缰绳(召唤坐骑)
    partnerExp    = 28, --随从道具（经验药水)
    crystal       = 29, --水晶
    wildBoss      = 30, --野外boss门票
    lifeSkill     = 31, --生活技能书
    enegy         = 32, --体力药水
    transattr     = 35, -- 属性条卷轴(属性转移)
    allAttrScroll = 37, -- 万能属性条卷轴
    ship          = 72, --船长室收藏品
})

--tips声望分类
make_enum("TipsPrestigeType", {
    none         = 0,  --无需求
    fame         = 1,  --声望需求
    level        = 2,  --角色等级
    vip          = 3,  --VIP等级
    achievement  = 4,  --完成成就
})

Enums.QualityName = {
    "garbage", --白色
    "normal",  --绿色
    "rare",  --蓝色
    "superrare",  --紫色
    "epic",   --橙色
}

Enums.GuildRankType = {
    GuildLv = 1202,--公会等级
    TotalCombatPower = 1203,--总战力
    ActivityMemberNums = 1204,--活跃人数
    TotalContributions = 1205,--总贡献度
    TotalProsperity = 1206, --总繁荣度

    CSTotalCombatPower = 1301, -- 跨服
    CSTotalContributions = 1302, -- 跨服
    CSTotalProsperity = 1303, -- 跨服

}

Enums.QualityColor = {
    cc.c4b(176, 176, 176, 255), --白色
    cc.c4b(117, 211, 124, 255),  --绿色
    cc.c4b(108, 158, 239, 255),  --蓝色
    cc.c4b(190, 76, 255, 255),  --紫色
    cc.c4b(255, 217, 54, 255),   --金色
    cc.c4b(255, 154, 55, 255),   --橙色
}

Enums.QualityColor1 = {
    cc.c4b(255, 255, 255, 255), --白色
}

Enums.QualityColor2 = {
    -- 世界boss宝箱tips用到的颜色
    cc.c4b(255, 225, 132, 255), 
    cc.c4b(150, 255, 4, 255),
    cc.c4b(183, 183, 183, 255),
    cc.c4b(167, 238, 223, 255),
}

Enums.EmulatorType =
{
    Error = -1,
    Phone = 0, --手机
    Tencent = 1, --腾讯手游助手
    LeiDian = 2, --雷电
    YeShen = 3, --夜神
    Mumu = 4, --MuMu
    HaiMaWan = 5, --海马玩
    TianTian = 6, --天天
    LanDie = 7, --蓝叠
    Other = 8,  --其他
}

-- 1指定道具ID
-- 2指定装备ID
-- 3指定套装ID
-- 4指定座骑ID
-- 5指定工具ID
-- 7指定符文ID
-- 8指定宝石ID
-- 11指定佣兵伙伴ID
-- 21指定地图BUFF|ID|时间
-- 87绑钻
-- 90珠宝碎片
-- 91月卡
-- 92 代币之一，编号92
-- 95荣誉值
-- 96体力值|0
-- 97主角经验|自适应倍率|固定数量
-- 98钻石|0
-- 99金币|自适应倍率|固定数量
-- 100声望
-- 101指定道具类型
-- 102指定武器类型
-- 107指定符文类型
-- 108指定珠宝类型
make_enum("PropType", {
    itemId          = 1,
    weaponId        = 2,
    maskId          = 3,
    mountId         = 4,
    toolId          = 5,
    jewel           = 8,
    mercenary       = 11,
    mapBuffId       = 21,

    bindCoin        = 87,
    jewelChip       = 90,
    eventPoint      = 91,
    coinRes92       = 92,
    power           = 96,
    playerExp       = 97,
    coin            = 98,
    gold            = 99,
    fame            = 100,

    itemType        = 101,
    weaponType      = 102,
    jewelType       = 108,
    roseGold        = 110,
    magicCrystal    = 115,

    guild_contribution = 112, -- 公会贡献
})

Enums.BattleDefaultScales = {
    characterScale = 0.63,
    npcScale = 0.6,
    bossScale = 1,
    mecScale = 0.5,
}


--StatusBar 隐藏显示控制 做个优先级排序,
--这里优先级必须是 1 2 3 4...不能有重复
Enums.BattleStatusBarVisibleCtrlPriority = {
    GameOver = 1,    --战斗结束 控制隐藏
    Dead     = 2,    --死亡 控制隐藏
    FakeUnit = 3,    --假的npc 控制隐藏
    Stealth = 4,    --控制隐藏
    Wolf = 5,    --狼王控制隐藏
    PVP = 6,    --控制显示
}

make_enum("BuffEffects",{
    None = 0,   --无
    Stun = 1,   --晕眩
    Sheep = 2,  --变羊
    Stone = 3,  --石化
    Poison = 4, --中毒
    Sneak = 5,  --潜行
    Frozen = 6, --冰冻
    Cold = 7,  --寒冷
    Fire = 8,  --燃烧
    Fall = 9,  --击飞
    Red = 10, --变红
    Purple = 11, --暗紫色 斗篷/暗影形态
})

make_enum("BuffEffectsLogic",{
    BE_Normal       = 0, -- 无效果
    BE_Stune        = 1, -- 眩晕   Daze
    BE_Chaos        = 2, -- 混乱
    BE_Silence      = 3, -- 沉默
    BE_Taunt        = 4, -- 受到嘲讽 第一
    BE_Focus        = 5, -- 被集火 第三
    BE_Lock         = 6, -- 被锁定 第二
    BE_Hide         = 7, -- 躲藏 第四
    BE_Blind        = 8, -- 致盲 第四
    BE_NoBack       = 9, -- 不被击退
    BE_Slow         = 10,-- 减速
    BE_Frozen       = 11,-- 冰冻
    BE_HitRecover   = 12,-- 硬直
    BE_SuperStune   = 13,-- 眩晕
    BE_Sheep        = 14,-- 变羊
    BE_Fear         = 15,--恐惧
    BE_Stone        = 16,--石化
    BE_Banish       = 17,--放逐
})

Enums.CommonActionTag = {
    LongPress   = 9999,    -- 长按action
    ActorRunTo  = 10000,    -- 可选目标
    BattleMask  = 10001,    -- 战斗遮罩
    FloatText   = 10002,    -- 浮动文字显示位置重置
    StanceGather   = 10003,    -- 技能条收缩
    StanceExtend   = 10004,    -- 技能条散开
    ChantSound   = 10005,    -- 技能吟唱声音
    BattleCheck   = 10006,    -- 战斗状态检查
    BattlePullBtnFade   = 10007,    -- 战斗拉出按钮淡出动画
    BattlePullBtnHide   = 10008,    -- 战斗拉出按钮隐藏动画
    BattleScreenHitShake   = 10009,    -- 战斗中打击震动
    BattleScreenShake   = 10010,    -- 战斗中震动
    BattleArmatureBuffScale   = 10011,    -- 战斗actor buff的scale action
    BattleSkillPressScale   = 10012,    -- 战斗点击缩放
    BattleSkillReleaseScale   = 10013,    -- 战斗释放缩放
    BattlePlayerNodeLocked = 10014,      --战斗头像锁定动画
    BattleLinkerAction = 10015,      --战斗连接特效
    BattleLinkerEndAction = 10016,      --战斗连接action结束
    BattleProjectileRemoveAction = 10017,      --弹道移除action
    BattleProjectileHideAction = 10018,      --弹道隐藏action
    BattleScreenBlinkAction = 10019,      -- 屏幕红色闪光
    BattleScreenSplashShake   = 10020,    -- 战斗中闪屏时震动
    BattleActorReborn   = 10021,
    BattleActorDeadAnimationEnd   = 10022, --战斗中死亡动画结束后action
    BattleBlindUI   = 10023, --战斗中致盲ui变白
    BattleBlackScreen   = 10024, --kof战斗转场黑屏
    BattleLionThreeKillUIHide   = 10025, --狮心号角三连杀 ui 隐藏
}

Enums.TargetKind = {
    None = 0,		-- 无目标
	FollowParty = 1,	-- 遵从party筛选
	Point = 2,			-- 坐标点
    FollowParty_Point = 3,	-- 遵从party筛选 释放时确定点坐标
}

Enums.BattleActorType = {
    self = 1,
    teammate = 2,
    enemy = 3,
    boss = 4,
}

--角色所在layer的index
Enums.BattleActorLayer = {
    back = 0,		-- 后层
	front = 1,	    -- 前层
	special = 2,	-- 特殊层 变黑后可以显示的层
}

Enums.BattleSkillLayout = {
    sides = 1,
    right = 2,
    mid = 3,
}

Enums.BattleRockerFix = {
    Follow = 1,
    Fixed = 2,
}

Enums.SkillScaleStatus = {
    noScale     = 1,    -- 没有缩放
    castScale   = 2,    -- 放大
    scaleToNormal = 3,  -- 缩放到正常大小
}

Enums.BattleTipsType = {
    None = 0,
    BuyItemSuc = 1,
    BuyItemFail_Dead = 2,
    BuyItemFail_ItemConfigMiss = 3,
    BuyItemFail_MoneyNotEnough = 4,
    BuyItemFail_BuffFull = 5,
    BuyItemFail_SkillFull = 6,
    BuyItemFail_MercenaryFull = 7,
    SummonFail_Full = 8,
    Kill = 9,
    RefreshBattle = 10,
    BuyItemFail_SkillInProgress = 11,
}

Enums.UserDefaultKey = {
    MuteSound = "AM.isMuteSound",
    MuteMusic = "AM.isMuteMusic",
    SoundVolumeMax = "AM.SoundVolumeMax",
    MusicVolumeMax = "AM.MusicVolumeMax",
    ToolbarVisible = "VR.isToolbarVisible",
    FpsFast = "FpsFast",
    BattleGuideComp = "BattleGuideComp",
    TextureHalfSize = "TextureHalfSize",
    IsSettingInit = "IsSettingInit",
    TencentAgreement = "TencentAgreement", -- 腾讯协议已同意
    LoginFailTime = "LoginFailTime", -- 上次登录失败时间
    EffectAllShow = "EffectAllShow",
}

Enums.JewelState = {
    inBag       = 0, -- 在宝石背包
    inSlot     = 1, -- 在孔中
}

Enums.infiniteBuff = {
    buff0 = 5100001,--公会队伍
    buff1 = 5100002,--老带新
    buff2 = 5100003,--月卡用户
    buff3 = 5100004,--队长
    buff4 = 5100005,--队长-队伍2人
    buff5 = 5100006,--队长-队伍3人
    buff6 = 5100007,--队长-队伍4人
    buff7 = 5100008,--队长-队伍5人及以上
    buff8 = 5100016,--团长
}

Enums.LevelColorIndex = {
    normal      = 1,
    low         = 2,
    equal       = 3,
    high        = 4,
    superHigh   = 5,
}

Enums.LevelColor = {
    cc.c4b(255, 255, 255, 255), --白色
    cc.c4b(98, 255, 101, 255),  --绿色
    cc.c4b(34, 200, 255, 255),  --蓝色
    cc.c4b(254, 185, 45, 255),  --黄色
    cc.c4b(255, 55, 58, 255),   --红色
}

--拍卖行品质过滤
Enums.AuctionFilterQuality = {
    all = 0,
    white = 1,
    green = 2,
    blue = 3,
    purple = 4,
    orange = 5
}

--售价过滤 更低 更高
Enums.AuctionFilterSoldPrice = {
    lower = 1,
    higher = 2
}

--拍卖行商品页签
Enums.AuctionProductType = {
    normal = 1,
    bid = 2
}

--显示类型过滤
Enums.AuctionFilterType = {
    all = 0,
    mySold = 1, --我的出售
    myBid = 2 --我的竞价
}

Enums.MailStatus = {
    new = 0,    --新邮件
    read = 1,   --已读
    fetch = 2   --附件已领取
}

Enums.FriendType = {
    friend = 1,    --好友
    black = 2,   --黑名单
    stranger = 3,   --陌生人
    apply = 4, --申请ing
    msdk = 5, -- msdk qq 或者 wx 好友
}

Enums.ShareType = {
    qqZone = 1,       --qq空间
    qqSession = 2,    --qq会话
    wxCircle = 3,     --微信朋友圈
    wxSession = 4,    --微信会话

    facebook = 1,
    twitter = 2,
    ins = 3,
}

Enums.IMRecordPhase = {
    Start   =1,    --开始
    Record  =2,    --录音中
    Cancel  =3,    --取消
    End     =4,    --结束
}

Enums.ChannelID = {
    system="system",    --系统
    world="world",      --世界
    map="map",          --附近
    guild="guild",      --公会
    p2p="p2p",          --密聊
    team="team",        --队伍
    teamreq="teamreq"   --组队招募
}

Enums.MenuItems = {
    attr="attr",            --属性
    set="set",              --设置
    observe="observe",      --观察
    mercenary="mercenary",  --雇佣兵
    friendView = "friendView", --好友界面
    friend="friend",        --加好友
    delFriend = "delFriend",--删除好友
    black="black",          --加入黑名单
    mail="mail",            --发邮件
    chat="chat",            --聊天
    switchUser="switchUser",--切换角色
    achive="achive",        --成就
    captainRoom = "captainRoom", --船长室
    visitCaptainRoom = "visitCaptainRoom", --访问船长室
    report = "report",      --举报

    kickPartner="kickPartner",  -- 踢出随从
    changePartner="changePartner",  --切换随从

    kickRobot="kickRobot",  -- 踢出机器人

    guildOfficer = "guildOfficer",  --任命精英
    guildUnOfficer = "guildUnOfficer",  --取消精英
    guildLeader = "guildLeader",  --转让会长
    guildDisband = "guildDisband",  --解散公会
    guildKick = "guildKick",  --踢出公会
    guildQuit = "guildQuit",  --退出公会
    guildInvite = "guildInvite",  --邀请入会
    guildPeerageChange = "guildPeerageChange", --变更职位
    guildInfo = "guildInfo",


    teamInvite="teamInvite",    --邀请组队／战团
    teamJoin="teamJoin",        --申请入队／战团
    teamLeave="teamLeave",      --暂离队伍／战团
    teamBack="teamBack",        --回归队伍／战团
    teamQuit="teamQuit",        --退出队伍／战团
    teamKick="teamKick",        --踢出队伍／战团
    teamLeader="teamLeader",    --转让队长／团长
    teamSwitch="teamSwitch",    --转为队伍／战团
    teamReady="teamReady",      --战前确认
    teamImpeach="teamImpeach",   --申请队长/ 团长
    duelKickPartner = "duelKickPartner", --踢出随从
    duelChoosePartner = "duelChoosePartner", --选择随从
    eliteDuelKickPartner = "eliteDuelKickPartner", --精英决斗赛踢出随从
    eliteDuelChoosePartner = "eliteDuelChoosePartner", -- 精英决斗赛选择随从
    
}

Enums.MenuType = {
    player = "player",  -- 玩家
    head = "head",      -- 自己头像
    friend = "friend",      -- 好友界面
    teamPartner = "teamPartner",   -- 组队随从
    teamRobot = "teamRobot",   -- 组队机器人
    guildMember = "guildMember",   -- 公会成员
    chess = "chess",   -- 星空谜棋
    champion = "champion", -- 冠军赛
    visitCaptainRoom = "visitCaptainRoom", --访问船长室
    duel = "duel", --决斗赛弹窗
    eliteDuel = "eliteDuel", --精英决斗赛弹窗
    observeAndGuild = "observeAndGuild", -- 观察 和 公会
}

Enums.NpcVariety = {
    normal = 1,
    dungeon = 2,
}

Enums.BoxType = {
    -- 前三个值是有意义的，用来读取开启宝箱次数
    dungeon = 1,    -- 地城宝箱
    pvp = 2,      -- 锦标赛宝箱
    eventBox = 3,   -- 世界事件活动宝箱

    secret = 4,     -- 秘境宝箱（暂未使用）
    guildChallenge = 5, -- 公会挑战宝箱
    champion = 6, -- 冠军赛
    championSeason = 7, --锦标赛赛季宝箱

    associate = 8, -- 使用关联道具
    challengeSeason = 9, -- 挑战赛赛季宝箱
    eliteArenaSeason = 10, --精英竞技场赛季宝箱
    eliteDuelSeason = 11, --精英决斗赛赛季宝箱

    -- notice: 别忘了添加对应的icon 资源，Res.BoxIconAry
}

Enums.BoxSceneType = {
    luckBox = 1,    -- Res.BoxScene(default)
    pvpReward = 2,  -- Res.PvpRewardScene
}

Enums.CosplayType = {
    pve = "pve",
    pve10 = "pve10",
    pvp1 = "pvp1",
    pvp5 = "pvp5"
}

Enums.AvatarShopType = {
    face = 1,
    hair = 2,
    hairColor = 3,
    gender = 4
}

-- 引导激活类型
Enums.GuideActivateType = {
    mainTask = "mainTask",  -- 主线任务
    sideTask = "sideTask", -- 支线任务
    level = "level" -- 等级提升
}

-- 引导激活类型
Enums.IMSimpleShowType = {
    all = 1,    -- 全部显示
    btn = 2,    -- 只显示按钮
    msgs = 3    -- 只显示消息列表
}

-- 外显预览类型
Enums.AvatarPreviewType = {
    equip = 1,    -- 装备
    mount = 2,    -- 坐骑
    partner = 3   -- 随从
}

-- 组队玩法目标
Enums.TeamTarget = {
    arena = 901, --竞技场
    melee = 903, --赤道大乱斗
    theatre = 904, --奇迹歌剧院

    lionHeart = 301,    -- 狮心号角
    fishVSZombie = 302, -- 鱼人大战僵尸
    kof = 303,          -- 决斗之王
    ashInvade = 304,    -- 灰烬入侵
    chess = 305,        -- 星空谜棋
    
    training = 307,     -- 训练场
    worldBoss = 501,    -- 世界boss
    dynastyBattle = 502, -- 公会战，不在组队界面展示，只是方便展示准备UI
    storyTask = 503, -- 剧情副本(临时方案)，不在组队界面展示，只是方便展示准备UI
    wildBoss = 504, -- 野外boss
    challenge = 505, --  挑战赛，不在组队界面展示，只是方便展示准备UI
    duel = 507, --决斗赛
    eliteMatchArena = 20001, --跨服精英赛-竞技场
    eliteMatchDuel = 20002, --跨服精英赛-决斗赛
}

-- 组队玩法目标类型
Enums.TeamTargetType = {
    normal = 1, --5人普通地下城
    legion = 2, --团队地下城
    speed = 3, --竞速地下城
    secret = 4, --秘境地下城
    pvp = 5, --锦标赛副本
    activity = 6, --活动副本
    other = 7, --其他副本
}

-- 组队玩法的几种大类型
Enums.TeamMatchType = {
    Dungeon = 1,   -- 地下城
    Pvp = 2, -- 锦标赛
    Activity = 3, -- 活动
    Other = 4, -- 其他
}

-- 跨服匹配类型
Enums.CrossMatchType = {
    Dungeon = 1,   -- 地下城
    Challenge = 2, -- 挑战赛
    Elite = 3, -- 精英赛
}

-----------------new battle-------------------

Enums.SingleStartDataType =
{
    File = 1,
    Proto = 2,
}

Enums.Face = {
    middle = -1,
    left = 0,
    right = 1,
}

Enums.EntityKind = {
    EKind_Unit = 1,
    EKind_Projectile = 2,
    EKind_Settlement = 3,
    EKind_Buff = 4,
    EKind_Skill = 5,
}

Enums.CmdID = {
    Cmd_Invalid = 0,        --无效
    Cmd_Skill = 1,          --技能攻击
    Cmd_SyncTime = 2,    -- 同步服务器战斗时间
    Cmd_Talk = 3,        --喊话
    Cmd_ChangeAttack = 4,-- 切换普攻
    Cmd_Escape = 5,      -- 逃跑
    Cmd_SetFlag = 6,      -- 标记
    Cmd_MoveStart = 7,      -- 开始移动
    Cmd_MoveStop = 8,      -- 移动结束
    Cmd_SetSkillTarget = 9,      -- 指定技能目标
    Cmd_KeepAttack = 10, -- 持续普攻
    Cmd_ForceLockTarget = 11, -- 强制锁定目标
    Cmd_Revive = 12, -- 复活
    Cmd_BuyItem = 13,-- 大乱斗中买东西
    Cmd_SummonMonster = 14,--// 狮心号角招怪
    Cmd_UseItem  = 15,
    Cmd_CollectItem  = 16,
    Cmd_RealtimeInteraction  = 17,--Unit 交互
    Cmd_CancelSkill = 18, --取消技能
    Cmd_InterruptBattle = 19, -- 中断战斗
    Cmd_FinishChantCharge = 20, --结束吟唱蓄力
}

Enums.EBattleType = {
    BtType_Normal   = 0,		-- 普通（任务或副本）
    BtType_ArenaPvp = 1,		-- 竞技场
    BtType_Kof = 2,				-- 决斗之王
    BtType_Melee = 3,			-- 赤道大乱斗
    BtType_GuildWar = 5,        -- 领地争夺战
    BtType_WorldGuildWar = 6,   -- 跨服公会战

    BtType_ShiXinHaoJiao = 301,	-- 狮心号角
    BtType_Zombie = 302,		-- 鱼人大战僵尸
    BtType_Throne = 306,		-- 冠军赛
    BtType_Training = 307,      -- 训练场
    BtType_Duel = 308,          -- 决斗赛
    BtType_TheatrePve = 904,	-- 歌剧院PVE
    BtType_WorldBoss = 501,     -- 世界Boss
}

Enums.MoveFlag = {
    left = 0,
    right = 1,
    stop = 2,
}

Enums.Neutral ={
    Team =  3,
    Dir  =  0,
}

Enums.TargetType = {
    TargetType_None = 0,
    TargetType_Id  = 1,  --目标ID
    TargetType_Pos = 2,  --坐标点
}

Enums.ShopItemType = {
    Skill = 1,
    Buff = 2,
    MercenaryJunior = 3,
    MercenaryMedium = 4,
    MercenarySenior = 5,
}

Enums.Result = {
    RESULT_FAIL         = -1,
    RESULT_NONE         = 0,
    RESULT_OK           = 1,
    RESULT_CONFIRMED    = 2,
    RESULT_INCD         = 3,

    RESULT_ERR_CODE     = 100,
}

Enums.FinishedReason = {
    FR_None         = 0,
    FR_Meet_Cond    = 1,
    FR_Timeout      = 2,
    FR_Escape       = 3,
}

Enums.CharacterState = {
    idle     = 1,
    move     = 2,
    dead     = 3,
    skill    = 4,
    chant    = 5,
    track    = 6,
    channel  = 7,
    restricted = 8,
    hurt     = 9,
}

--key 需要对应StateDefine.h 里面的 NormalSkillState 值
Enums.NormalSkillState = {
    "cd",
    "ready",
    "deploy",
    "applicable",
    "chant",	-- 吟唱
    "track",	-- 追踪
    "channeling",
    "prepare",--前摇
    "release",
    "releaseFinish",
    "restriction",
    "recover", --后摇
    "done",
}

Enums.UnitType = {
    Invalid = 0,
    Player  = 1,
    Npc     = 2,
}

--运营活动的类别
Enums.ActivityType = {
    Fate = 1, --命运石板
    Into = 2, --登陆送
    Carnival = 3, --嘉年华
    Welfare = 4, --福利
    Draw = 5, --抽卡
}

Enums.ActivitySubType = {
    Recharge = 1, --网页型 一张图加一个连接
    Sign = 2, --签到类型
    Give = 3,--完成任务类型
    ThreeDayLogin = 4, --三日登陆
    FirstRecharge = 5, --首冲
    FirstKill = 6, --首杀

    Fund = 7, --基金类型

    CDKey = 101, -- 兑换码
    Privilege = 103, -- 特权礼包（月卡）
    AmazingBox = 8, -- 神奇宝箱
    SunfuryTreasure = 9, -- 日怒宝藏
    Through = 10, --快速升级礼包
    HeroTreasure = 11, --英雄宝藏
}


Enums.NpcKind = {
    NpcKind_Invalid = 0,
    NpcKind_Npc     = 1,
    NpcKind_Elite   = 2,
    NpcKind_Boss    = 3,
    NpcKind_Partner = 4,
}

Enums.PE = {
    PE_P    = 0,   --// player
    PE_E    = 1,   --// environment
}

Enums.BattleState = {
    init            = 1,
    prepare         = 2,
    removeUnusedRes = 3,
    start           = 4,
    enter           = 5,
}

Enums.ToastTag = {
    normal          = 1,
    battle          = 2,
}

Enums.SkillCancelReason = {
    mana          = 1,--能量不足
    noTarget      = 2,--没有目标 false
    priority      = 3,--优先级排序 false
    broken        = 4,--打断 true
    restricted    = 5,--眩晕 击退等 false
    dead          = 6,--死亡 false
}

Enums.EndConditionType = {
	NONE                        = 0,
	OWN_TEAM_ATLEASET_ALIVE_NUM = 1,	-- 己方至少存活人数
	ENEMY_ALL_DEAD              = 2,	-- 敌方全部阵亡
	OWN_TEAM_ALL_DEAD           = 3,	-- 己方全部阵亡
	BATTLE_TIME_OVER            = 4,	-- 坚持战斗时间 或者 杀死敌方所有人
	NPC_HP_LOW                  = 5,	-- 指定npc血量低于x%
	NPC_HP_HIGH                 = 6,	-- 指定npc血量高于x%
    GROUP_ENEMY_DEAD_COUNT_OVER = 7,	-- 杀死指定groupId的npc的数量多于x
	OWN_TEAM_DEAD_COUNT_OVER    = 8,	-- 己方死亡人数多于x
}

Enums.TeamMarkList = {  --对应ui上显示顺序
	MARK_1                      = 1,	-- 标记1

    NONE                        = 0,
}

Enums.DamageRangeKind = {  --对应ui上显示顺序
	DR_Kind_Single = 1,	-- 单体
	DR_Kind_Region = 2,	-- 范围
	DR_Kind_Screen = 3,	-- 全屏
    DR_Kind_Caster_Region = 4, --施法者范围
}

Enums.ChannelType = {  --对应ui上显示顺序
    ChannelType_All     = 0, --技能释放一次 全部子技能依次释放
    ChannelType_Next    = 1, --技能释放一次 只释放一个子技能，下次释放下一个
    ChannelType_Random  = 2, --技能释放一次 随机释放一个子技能
    ChannelType_Loop    = 3, --技能释放一次 子技能循环释放不停止
    ChannelType_Select_By_CP_Consume = 4,  --根据连击点消耗的数量选择技能
    ChannelType_Sequence_By_CP_Consume = 5,  --根据连击点消耗的数量决定技能序列长度
    ChannelType_Select_By_Command = 6, --根据指令数据选择技能
    ChannelType_Switch_By_Select = 7, --光环技能 根据选择开关技能
}

Enums.TargetSortType = {
    TargetSort_Nearer = 0,
    TargetSort_Random = 1,
    TargetSort_HpLowerPercent = 2,
    TargetSort_HpLowerValue = 3,
    TargetSort_Far = 4,
    TargetSort_Marked = 5,
    TargetSort_NonMarked = 6,
    TargetSort_HighestThreat = 7,
    TargetSort_MeleePhysicalOutput = 8,
    TargetSort_RemoteMagicOutput = 9,
    TargetSort_Healer = 10,
}

Enums.SpecialistID = {
    WarriorDefense = 101,
    PriestHoly = 501,
}

-----------------new battle end-------------------

Enums.FaceTo = {
    left = "LEFT",
    right = "RIGHT"
}

Enums.status = {
    idle = "IDLE",
    run = "RUN"
}

Enums.qualityCfg = {
    "bnpcIDWhite",
    "bnpcIDGreen",
    "bnpcIDBlue",
    "bnpcIDPurple",
    "bnpcIDGold"
}

Enums.mapType = {
    [1] = "normal",
    [2] = "dungeon",
    [3] = "dynasty",
    [4] = "home",
    [6] = "guild",
    [7] = "level",
    [9] = "arena",
}

--[[
--chatShareList_1			表情
--chatShareList_2			装备
--chatShareList_3			时装
--chatShareList_4			坐骑
--chatShareList_5			随从
--chatShareList_6			物品
--chatShareList_7			珠宝
-- ]]
Enums.ImmPanelType = {
    ImmPanel_Smile = 1,
    ImmPanel_Equip = 2,
    ImmPanel_Fashion = 3,
    ImmPanel_Mount = 4,
    ImmPanel_Partner = 5,
    ImmPanel_Item = 6,
    ImmPanel_Jewel = 7,
}

--Enums.partnerMaxQuality = 5

Enums.colorCfg = {
    mana = cc.c4b(102,233,250, 255),
    energy = cc.c4b(231,217,118, 255),
    rage = cc.c4b(251,105,76, 36)
}

Enums.goddessColor = {
    cc.c3b(0x73, 0xa8, 0xfe),
    cc.c3b(0xc8, 0x6c, 0xf2),
    cc.c3b(0x82, 0x79, 0x8c),
    cc.c3b(0xff, 0xb6, 0x57),
}

--1-铜 2-银 3-金
Enums.activityRewardGrade =
{
    none = 0,
    bronze = 1,
    silver = 2,
    gold = 3,
}

-- 冠军赛状态
Enums.ChampionStatus =
{
    NOT_OPEN = 1, -- 未开启报名
    REGISTER = 2, -- 报名时间
    PREPARE = 3, -- 战备时间
    ENTER = 4, -- 进入场景
    BATTLE = 5, -- 战斗时间
    CLOSE = 6, -- 结束
}

-- 统计数据
Enums.statisticId =
{
    -- 前面用的是 pb_statistic.STATISTIC_ID

    ACHIEVE_POINT = 201,
    MOUNT_NUM = 202,
    PARTNER_NUM = 203,
    GUILD_NAME = 204,
}

-- 复用服务器的pb_loot.Loot.LootType
Enums.lootType = 
{
    none        = 0,  --无类型
    -- //道具类型
    item        = 1,  --物品
    equip       = 2,  --装备
    jewel       = 8,  --宝石
    itemAll     = 101,--物品大类
    equipAll    = 102,--装备大类
    jewelAll    = 108,--宝石大类
    -- //货币类型
    bindCoin    = 87, --绑钻
    magicDust   = 92, --魔尘
    historySaveAmt = 93, --历史累计充值
    presentCoin = 94, --赠送钻石
    coin        = 98, --钻石
    gold        = 99, --金币
    starCoin    = 150, --星辉币
    -- //资源类型
    mountSoul   = 80, --资源灵魂石
    starCount   = 84, --锦标赛星章
    skillPoint  = 85, --技能点
    talentPoint = 86, --天赋点
    lifeSkillExp= 88, --生活技能经验
    charm       = 89, --好运符
    power       = 96, --体力值
    exp         = 97, --经验值
    fame        = 100,--声望值
    eventPoint  = 91, --世界事件活动点
    dungeonPoint    = 121, --副本点数
    dungeonLuckBox  = 122, --整个的副本宝箱
    eventLuckBox    = 123, --整个的活动宝箱
    arenaLuckBox    = 124, --整个的竞标赛宝箱
    arenaExp    = 132, --锦标赛经验
    partnerSoul = 133, --随从灵魂石
    -- //玩法类型
    mount       = 4,  --坐骑
    rune        = 7,  --符文
    formula     = 9,  --formula
    partner     = 11, --随从
    extralimit	= 12, --额外的副本奖励次数
    mapBuff     = 21, --地图BUFF
    superTitle  = 71, --超级称号的一些时限型物品
    collector   = 72, --船长室藏品
    fashion     = 81, --时装
    lifeSkill   = 82, --生活技能
    title       = 83, --玩家称号
    task        = 90, --任务
    roseGold    = 110, -- 玫瑰金币（玫瑰金币实际是道具，但有货币配置）
    goddessBless = 111, -- 女神祝福
    challengeStarMedal = 113; -- 挑战赛星章
    magicCrystal = 115; -- 魔晶
}

Enums.behaviorType = 
{
    none = 0,
    battle = 1,
    offline = 2,
    atk = 4,
}

--核心属性
Enums.CoreProp = {
    Strength     = 1,
	Intelligence = 2,
	Agility      = 3,
	Spirit       = 4,
	Endurance    = 5,
}

--
Enums.TIPS_HIDE = {
    NORMAL = 1,
    GOTO = 2,
}

-- 关联道具Id，使用宝箱时，先打开宝箱开启界面
Enums.associatedItemIds = {
    630030,
    633001,
    632001,
    634001,
    631001,
}
Enums.WAKE_UP = {
    NONE = "None", 
    WXGAME = "WXGame",
    QQGAME = "QQGame",   
}

Enums.MSDK_PLATFORM = {
    WX = 1, 
    QQ = 2, 
    GUEST = 5, 
}

Enums.MSDK_QQ_VIP = {
    VIP_NONE = "VIP_NONE", 
    VIP_NORMAL = "VIP_NORMAL", 
    VIP_SUPER = "VIP_SUPER", 
    VIP_XINYUE = "VIP_XINYUE", 
}


Enums.EquipType = {
    mainhand    = 1,  -- 主手
    offhand     = 2,  -- 副手
    shoulder    = 3,  -- 肩膀
    belt        = 4,  -- 腰带
    head        = 5,  -- 头
    back        = 6,  -- 背
    necklace    = 7,  -- 项链
    cloth       = 8,  -- 衣服
    jewel       = 9,  -- 饰品
    toy         = 10, -- 玩具
    shoes       = 11, -- 鞋
    gloves      = 12, -- 手套
}

-- 活动npc类型
Enums.activityNpcType = {
    worldBoss   = 1, -- 世界boss npc
    dynasty     = 2, -- 公会战 npc
}

Enums.trainingType = {
    build = 0,
    rolePlay = 1,
}

Enums.mainTaskEffect = {
    blackwing = {
        armatureName = "BUFF_wjemh",
        animationName = "effloop",
        boneName = "backdress"
    }
}

Enums.trackType = {
    wildBoss = 1,
    worldBoss = 2,
    dynasty = 3,
}

Enums.IndexForActivityId = {
    [1] = 301,      -- 狮心号角
    [2] = 304,      -- 灰烬入侵
    [3] = 307,      -- 训练场
}

Enums.Publisher = {
    default = "develop",
    tencent = "tencent",
    ema = "ema",
    pwrd = "pwrd",
}

-- 可以强化的部位
Enums.GridCanStrengthen = {
    mainhand    = 1,  -- 主手
    offhand     = 2,  -- 副手
    shoulder    = 3,  -- 肩膀
    belt        = 4,  -- 腰带
    head        = 5,  -- 头
    cloth       = 8,  -- 衣服
    shoes       = 11, -- 鞋
    gloves      = 12, -- 手套
}

Enums.GiftType = {
    RMBGift = 1,    --腾讯版直购礼包（每日礼包/超值礼包）
    DailyGift = 2,  --海外版每日礼包（直购）
    TaskGift = 3,   --完成任务每日礼包
}


Enums.MountListViewType = {
    ActivePanelType = 1,    --激活界面
    MountPanelType = 2,  --兽栏
}

--腾讯版shopid
Enums.TencentShopIds = {
    73011,  --商城商店-特惠
    73021,  --商城商店-宝物
    73031,  --商城商店-宝石
    73041,  --商城商店-材料
    73051,  --商城商店-外观
    73061,  --商城商店-其他
}

--EMA版shopid
Enums.EmaShopIds = {
    73111,  --商城商店-特惠
    73121,  --商城商店-宝物
    73131,  --商城商店-宝石
    73141,  --商城商店-材料
    73151,  --商城商店-外观
    73161,  --商城商店-其他
}

--完美版shopid
Enums.PwrdShopIds = {
    73111,  --商城商店-特惠
    73121,  --商城商店-宝物
    73131,  --商城商店-宝石
    73141,  --商城商店-材料
    73151,  --商城商店-外观
    73161,  --商城商店-其他
}

--
Enums.PayRetState = {
    success = 0,
    cancel = 1,
    fail = 2
}

Enums.GuideBattleAdEvent = {
    IntroChoose = "dc_intro_choose", --新手战_选择职业
    BattleStart = "dc_intro_battle", --新手战_进入战斗
    RoleMove = "dc_intro_move", --新手战_移动
    Skill1 = "dc_intro_skill1", --新手战_使用第一个技能
    Skill2 = "dc_intro_skill2",
    Skill3 = "dc_intro_skill3",
    Skill4 = "dc_intro_skill4",
    BattleEnd = "dc_intro_done", -- 新手战完成
}

-- 1：新开，2：火爆，3：畅通，4：维护 5：推荐
Enums.ServerStatus = {
    NewOpen = "1",
    Hot = "2",
    Unimpeded = "3",
    Maintain = "4",
    Recommend = "5",
}

-- game_status: 游戏状态 【 0 : 维护(初始)  1: 正常  2:关服  3:关闭充值  4:关闭注册  5:关闭充值和注册 】
Enums.AllServerStatus = {
    Maintain = 0,
    Normal = 1,
    Close = 2,
}

Enums.NetworkStatusAdEvent = {
    BreakActive = "dc_error_break_active", --主动断开
    BreakPassive = "dc_error_break_passive", --非主动断开
    ConnFail = "dc_error_connection_fail", --连接失败
    BattleBreakActive = "dc_error_battle_break_active", --战斗主动断开
    BattleBreakPassive = "dc_error_battle_break_passive", --战斗非主动断开
    BattleConnFail = "dc_error_battle_connection_fail", --战斗连接失败
    HttpConnFail = "dc_error_http_connection_fail", --http请求失败
}


Enums.PartnerTab = {
    Info = "Info",
    Relation = "Relation"
}

Enums.PartnerInfoSubTab = {
    Quality = "Quality",
    Level = "Level",
    Equip = "Equip",
    Skill = "Skill",
}

Enums.QualityColorString = {
    [1] = "Quality_String_1",
    [2] = "Quality_String_2",
    [3] = "Quality_String_3",
    [4] = "Quality_String_4",
    [5] = "Quality_String_5",
    [6] = "Quality_String_6",
}

-- 举报类型
Enums.ReportEvilType = {
    [1] = 10, -- 昵称不雅
    [2] = 11, -- 违法信息
    [3] = 12, -- 举报诈骗
    [4] = 13, -- 恶意刷屏
    [5] = 1,  -- 发送广告
    [6] = 99, -- 其他
}

-- Enums.MsdkGroupBindState = {
--     Binded = 1,
--     Unbind = 2
-- }

Enums.MsdkGroupJoinState = {
    Unknown = 1,
    NotBinded = 2,
    Joined = 3,
    Unjoin = 4
}

Enums.CrossServerTab = {
    Elite = "Elite",
    GuildWar = "GuildWar",
    Shop = "Shop"
}

-- 跨服公会赛 我的参赛资格状态
Enums.CSGuildWarTicketState = {
    Unknow = 1, -- 不确定
    Yes = 2, -- 可以
    No = 3, -- 不可以
}

-- 今天比赛阶段
Enums.CSGuildWarTodayStage = {
    NotBegin = 1, --未开始
    GetTicketStart = 2, -- 开始去获取参赛资格
    GetTicketEnd = 3, -- 参赛资格确定
    Fighting = 4, --战斗
    End = 5, --结束
}

Enums.CSGuildWarRoundStage = {
    Prepare = 1, -- 准备阶段
    Data = 2, -- 数据准备阶段
    FightStart = 3, -- 战斗开始
    FightEnd= 4, --战斗阶段
}

Enums.SuperRankMenu = {
    CSArena = 1,
    CSDuel = 2,
    CSGuildWar = 3,
}

Enum.SuperRankAvatarHeadType = {
    PersonalRank, -- 个人
    GuildRank, -- 公会
}

-- 完美SDK埋点类型（类型不同调用不同的接口）
Enums.PwrdTrackEventType = {
    Role = 1, -- 角色打点
    WanMei = 2, -- 完美打点
    AD = 3, -- 广告打点
}

-- 完美资源打点状态(目前只用于拉取服务器列表打点)
Enums.PwrdTrackEventState = {
    Begin = 1, -- 开始
    Success = 2, -- 成功
    Fail = 3, -- 失败
}